package com.gqj.bas.service;

import com.gqj.bas.domain.BasCabinet;

import java.util.List;
import java.util.Map;

/**
 * 密品柜子Service接口
 * 
 * @author lxq
 * @date 2023-12-17
 */
public interface IBasCabinetService 
{
    /**
     * 查询密品柜子
     * 
     * @param cabinetId 密品柜子主键
     * @return 密品柜子
     */
    public BasCabinet selectBasCabinetByCabinetId(Long cabinetId);

    /**
     * 查询密品柜子列表
     * 
     * @param basCabinet 密品柜子
     * @return 密品柜子集合
     */
    public List<BasCabinet> selectBasCabinetList(BasCabinet basCabinet);

    /**
     * 新增密品柜子
     * 
     * @param basCabinet 密品柜子
     * @return 结果
     */
    public int insertBasCabinet(BasCabinet basCabinet);

    /**
     * 修改密品柜子
     * 
     * @param basCabinet 密品柜子
     * @return 结果
     */
    public int updateBasCabinet(BasCabinet basCabinet);

    /**
     * 批量删除密品柜子
     * 
     * @param cabinetIds 需要删除的密品柜子主键集合
     * @return 结果
     */
    public int deleteBasCabinetByCabinetIds(Long[] cabinetIds);

    /**
     * 删除密品柜子信息
     * 
     * @param cabinetId 密品柜子主键
     * @return 结果
     */
    public int deleteBasCabinetByCabinetId(Long cabinetId);

    /**
     * 校验柜子信息是否唯一
     *
     * @param basCabinet 柜子信息
     * @return 结果
     */
    public String checkCabinetCodeUnique(BasCabinet basCabinet);

    /**
     * 校验柜子信息是否唯一
     *
     * @param basCabinet 柜子信息
     * @return 结果
     */
    public String checkCabinetIpUnique(BasCabinet basCabinet);

    /**
     * 查询柜子是否被引用
     *
     * @param cabinetId 柜子ID
     * @return 结果 true 存在 false 不存在
     */
    public boolean checkGridExistCabinet(Long cabinetId);

    /**
     * 查询柜架下拉框
     *
     * @param basCabinet 柜架
     * @return 柜架集合
     */
    public List<Map<String, Object>> cabinetOptions(BasCabinet basCabinet);
}
